//
//  main.m
//  03-NSStringAndNSValue
//
//  Created by QC.L on 16/7/6.
//  Copyright © 2016年 QC.L. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

    // 1.查看头文件或者API, 他们的初始化/构造器, 基本上都放在一起
    // 2.当我们拿到一个新的类, 你需要去查看这个类的初始化或者构造器
    
    /** 初始化(init) */
    NSString *string = [[NSString alloc] init];
    /** 便利构造器(string) */
    NSString *str = [NSString string];
    /** 获取字符串长度(length) */
    NSUInteger length = string.length;
    /** 获取字符串中字符(character) */
//    [string characterAtIndex:0];
    
    /** 字符串是否相等(equal) */
    [str isEqualToString:string];
    /** 获取子串(sub) */
    [str substringFromIndex:0];
    /** 拼接字符串(append) */
    [str stringByAppendingString:@"fdkjskfjds"];
    [str stringByAppendingFormat:@"jfkjdksf%@", str];
//    /users/local/bin/
    NSString *pathString = @"/users/local/bin";
    // 如果字符串方法带有返回值, 操作的不是原字符串, 而是生成新的字符串
    // 拼路径
    pathString = [pathString stringByAppendingPathComponent:@"name.plist"];
    NSLog(@"%@", pathString);
    /** 替换字符串(replace) */
//    [pathString stringByReplacingCharactersInRange:<#(NSRange)#> withString:<#(nonnull NSString *)#>]
    
    /** 字符串对象转化为int类型(int) */
    NSInteger number = [pathString integerValue];
    NSLog(@"%ld", number);
    double doubleValue = [pathString doubleValue];
    NSLog(@"%lf", doubleValue);
    [pathString floatValue];
    [pathString boolValue];
    
    /** 字符串对象转化为其他数据类型, 例如double, float, BOOL等. */
    
    /** 字符串全部大写(uppercase) */
    [pathString lowercaseString];
    [pathString uppercaseString];
    
    
    int age = 10;
    // number类型初始化方法
    NSNumber *ageNumber = [[NSNumber alloc] initWithInt:age];
    // number类型构造器方法
    NSNumber *ageNumber1 = [NSNumber numberWithInt:age];
    // number类型字面量 @"" @()
    NSNumber *ageNumber2 = @(age);
    
    // 1.330184198501184115 处理字符串, 取出他的出生年月, 并计算出年龄(不用具体)
    // 输出格式 1985年01月18日 年龄:31岁
    NSRange range = NSMakeRange(0, 0);
    
    
    
    
    
    
    return 0;
}
